// SPDX-License-Identifier: GPL-2.0
/*
 * Device tree sources for Exynos5433 thermal zone
 *
 * Copyright (c) 2016 Chanwoo Choi <cw00.choi@samsung.com>
 */

#include <dt-bindings/thermal/thermal.h>

/ {
thermal-zones {
	atlas0_thermal: atlas0-thermal {
		thermal-sensors = <&tmu_atlas0>;
		polling-delay-passive = <0>;
		polling-delay = <0>;
		trips {
			atlas0_alert_0: atlas0-alert-0 {
				temperature = <65000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			atlas0_alert_1: atlas0-alert-1 {
				temperature = <70000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			atlas0_alert_2: atlas0-alert-2 {
				temperature = <75000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			atlas0_alert_3: atlas0-alert-3 {
				temperature = <80000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			atlas0_alert_4: atlas0-alert-4 {
				temperature = <85000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			atlas0_alert_5: atlas0-alert-5 {
				temperature = <90000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			atlas0_alert_6: atlas0-alert-6 {
				temperature = <95000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
		};

		cooling-maps {
			map0 {
				/* Set maximum frequency as 1800MHz  */
				trip = <&atlas0_alert_0>;
				cooling-device = <&cpu4 1 2>, <&cpu5 1 2>,
						 <&cpu6 1 2>, <&cpu7 1 2>;
			};
			map1 {
				/* Set maximum frequency as 1700MHz  */
				trip = <&atlas0_alert_1>;
				cooling-device = <&cpu4 2 3>, <&cpu5 2 3>,
						 <&cpu6 2 3>, <&cpu7 2 3>;
			};
			map2 {
				/* Set maximum frequency as 1600MHz  */
				trip = <&atlas0_alert_2>;
				cooling-device = <&cpu4 3 4>, <&cpu5 3 4>,
						 <&cpu6 3 4>, <&cpu7 3 4>;
			};
			map3 {
				/* Set maximum frequency as 1500MHz  */
				trip = <&atlas0_alert_3>;
				cooling-device = <&cpu4 4 5>, <&cpu5 4 5>,
						 <&cpu6 4 5>, <&cpu7 4 5>;
			};
			map4 {
				/* Set maximum frequency as 1400MHz  */
				trip = <&atlas0_alert_4>;
				cooling-device = <&cpu4 5 7>, <&cpu5 5 7>,
						 <&cpu6 5 7>, <&cpu7 5 7>;
			};
			map5 {
				/* Set maximum frequencyas 1200MHz  */
				trip = <&atlas0_alert_5>;
				cooling-device = <&cpu4 7 9>, <&cpu5 7 9>,
						 <&cpu6 7 9>, <&cpu7 7 9>;
			};
			map6 {
				/* Set maximum frequency as 1000MHz  */
				trip = <&atlas0_alert_6>;
				cooling-device = <&cpu4 9 14>, <&cpu5 9 14>,
						 <&cpu6 9 14>, <&cpu7 9 14>;
			};
		};
	};

	atlas1_thermal: atlas1-thermal {
		thermal-sensors = <&tmu_atlas1>;
		polling-delay-passive = <0>;
		polling-delay = <0>;
		trips {
			atlas1_alert_0: atlas1-alert-0 {
				temperature = <65000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			atlas1_alert_1: atlas1-alert-1 {
				temperature = <70000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			atlas1_alert_2: atlas1-alert-2 {
				temperature = <75000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			atlas1_alert_3: atlas1-alert-3 {
				temperature = <80000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			atlas1_alert_4: atlas1-alert-4 {
				temperature = <85000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			atlas1_alert_5: atlas1-alert-5 {
				temperature = <90000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			atlas1_alert_6: atlas1-alert-6 {
				temperature = <95000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
		};
	};

	g3d_thermal: g3d-thermal {
		thermal-sensors = <&tmu_g3d>;
		polling-delay-passive = <0>;
		polling-delay = <0>;
		trips {
			g3d_alert_0: g3d-alert-0 {
				temperature = <70000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			g3d_alert_1: g3d-alert-1 {
				temperature = <75000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			g3d_alert_2: g3d-alert-2 {
				temperature = <80000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			g3d_alert_3: g3d-alert-3 {
				temperature = <85000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			g3d_alert_4: g3d-alert-4 {
				temperature = <90000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			g3d_alert_5: g3d-alert-5 {
				temperature = <95000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			g3d_alert_6: g3d-alert-6 {
				temperature = <100000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
		};
	};

	apollo_thermal: apollo-thermal {
		thermal-sensors = <&tmu_apollo>;
		polling-delay-passive = <0>;
		polling-delay = <0>;
		trips {
			apollo_alert_0: apollo-alert-0 {
				temperature = <65000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			apollo_alert_1: apollo-alert-1 {
				temperature = <70000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			apollo_alert_2: apollo-alert-2 {
				temperature = <75000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			apollo_alert_3: apollo-alert-3 {
				temperature = <80000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			apollo_alert_4: apollo-alert-4 {
				temperature = <85000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			apollo_alert_5: apollo-alert-5 {
				temperature = <90000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			apollo_alert_6: apollo-alert-6 {
				temperature = <95000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
		};

		cooling-maps {
			map0 {
				/* Set maximum frequency as 1200MHz  */
				trip = <&apollo_alert_2>;
				cooling-device = <&cpu0 1 2>, <&cpu1 1 2>,
						 <&cpu2 1 2>, <&cpu3 1 2>;
			};
			map1 {
				/* Set maximum frequency as 1100MHz  */
				trip = <&apollo_alert_3>;
				cooling-device = <&cpu0 2 3>, <&cpu1 2 3>,
						 <&cpu2 2 3>, <&cpu3 2 3>;
			};
			map2 {
				/* Set maximum frequency as 1000MHz  */
				trip = <&apollo_alert_4>;
				cooling-device = <&cpu0 3 4>, <&cpu1 3 4>,
						 <&cpu2 3 4>, <&cpu3 3 4>;
			};
			map3 {
				/* Set maximum frequency as 900MHz  */
				trip = <&apollo_alert_5>;
				cooling-device = <&cpu0 4 5>, <&cpu1 4 5>,
						 <&cpu2 4 5>, <&cpu3 4 5>;
			};
			map4 {
				/* Set maximum frequency as 800MHz  */
				trip = <&apollo_alert_6>;
				cooling-device = <&cpu0 5 9>, <&cpu1 5 9>,
						 <&cpu2 5 9>, <&cpu3 5 9>;
			};
		};
	};

	isp_thermal: isp-thermal {
		thermal-sensors = <&tmu_isp>;
		polling-delay-passive = <0>;
		polling-delay = <0>;
		trips {
			isp_alert_0: isp-alert-0 {
				temperature = <80000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			isp_alert_1: isp-alert-1 {
				temperature = <85000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			isp_alert_2: isp-alert-2 {
				temperature = <90000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			isp_alert_3: isp-alert-3 {
				temperature = <95000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			isp_alert_4: isp-alert-4 {
				temperature = <100000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			isp_alert_5: isp-alert-5 {
				temperature = <105000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
			isp_alert_6: isp-alert-6 {
				temperature = <110000>;	/* millicelsius */
				hysteresis = <1000>;	/* millicelsius */
				type = "active";
			};
		};
	};
};
};
